<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>原型继承</title>
</head>

<body>
    <script>
        function Person() {
            this.eye = 2,
            this.head = 1
        }

        function Man() { }
        // 通过原型继承 继承Person中的属性
        Man.prototype = new Person()
        // 指回原型对象，避免原来的constructor被覆盖
        Man.prototype.constructor = Man
        console.log(new Man().eye); // 2

        function Woman() { }
        // 通过原型继承 继承Person中的属性 每次new Person()出来的对象都不一样，可以避免给子类添加方法，却影响了其他类
        Woman.prototype = new Person()
        // 指回原型对象，避免原来的constructor被覆盖
        Woman.prototype.constructor = Man
        // 给原型对象添加方法
        Woman.prototype.baby = function () {
            console.log('baby');
        }
        console.log(new Woman().eye); // 2

        console.log(Man.prototype); // Person {eye: 2, head: 1}
        console.log(Woman.prototype); // Person {eye: 2, head: 1, baby: ƒ}
    </script>
</body>

</html>